A personal computer (PC) system may house one or more graphics subsystems. A graphics subsystem may have one or more display controllers, each of which is attached to a display device such as a VGA monitor or a TV. In the following, a display controller and its attached monitor/TV will generally be referred to as a display device when no ambiguity exists.
Microsoft's Windows family operation systems have become the industry's de facto standard. Their methods of displaying images/video have been patented under U.S. Pat. Nos. 5,844,569 and 5,850,232. When displaying a sequence of images, such as playing DVD, individual images are rendered into image buffers (surface locations), or blocks of video memory, and then the image buffers are displayed sequentially according to a specified timing. This display method is commonly termed as flip, meaning that the image buffer currently on display is replaced by another buffer containing a new image. The replaced image buffer becomes available again for receiving a newer image. In other words, the buffers are swapped.
However, the methods described in the referred patents are limited to the case where the image or video is shown on one display device, either in a window of the display or in the full screen. The two display modes will be referred to as the window mode and the full screen mode respectively. When a computer system has two display devices, Windows has two methods of showing the image. One is to duplicate the screen of one display to another, commonly referred to as the clone mode, whether the image is shown in a window or in a full screen. The other is to show the image on one of the display devices, which is often referred to as the extended desktop mode. A limitation of the clone mode is that the two monitors have to be set to identical refresh rates.
As such, Microsoft's methods are incapable of supporting the application where the user requires one of the displays to be his/her conventional working desktop with an image displayed in an overlay window while using the other display to show a full screen image for examining details of the image. For example, video editing is such a typical application. Also, the user may prefer his/her working desktop to be a monitor with high refresh rate, e.g. 85 Hz, for reduced flicking and the second monitor to be a TV to comply with the TV standard, such as PAL for which the refresh rate is 50 Hz, in order to maintain the correct playback speed.
A problem associated with displaying video simultaneously on multiple monitors with different refresh rates is screen tearing. The problem may not be noticeable when the system displays static images, such as the PC desktop. However, the problem is obvious when displaying moving images, such as movie. The causes of the problem are due to variations in phase and timing of vertical scans, as well as refresh rates, of multiple display devices. In the case of two displays having different refresh rates, the update to a new video buffer (referred to as a surface location, or image location when no ambiguity exists) can only be synchronized to one of the display devices while the same buffer is scanned by both display devices. Since the scans of two devices are generally not synchronized, at a given time instance, one display device may be scanning one line of pixels of an image while the other is scanning another line. To maintain the playback at a constant speed, the image buffers are swapped at predefined time instants, such as the VSYNC signal, and the probability is very high that one display device finishes scanning an image buffer while the other is still in the middle of scanning. With the conventional flip method, the buffer swapped out is released immediately for reuse. If the application renders a new image to this buffer before the second display device finishes scanning, screen tearing occurs.
A solution to the tearing problem is to copy, with or without scaling, the image to an auxiliary video buffer, and display the image of the auxiliary buffer in full screen on the second display device. One of the shortcomings of this approach is that at least two auxiliary buffers are required. The other is that it requires an extra bandwidth from the graphics processor to duplicate images to the auxiliary buffers. Therefore, a system and/or method capable of displaying images on multiple monitors without an extra cost of either video memory or graphics processor's bandwidth are desirable.